I. Field of the Disclosure
The technology of the disclosure relates generally to memory access controllers and memory page management policies in a processor-based system.
II. Background
It is common for processor-based systems, including central processing unit (CPU) based systems, to use dynamic memory for system memory. Dynamic memory is also commonly referred to a “dynamic random access memory” or “DRAM.” Dynamic memory is typically organized into a number of memory banks with each memory bank containing multiple memory pages. Accessing dynamic memory involves two discrete tasks, both of which may consume processing time. First, the memory page (i.e., row) corresponding to the desired memory location in the memory bank to be accessed is opened. This is also known as a “row select,” referring to a two-dimensional row and column memory arrangement. Second, the desired memory location within the memory page (i.e., column) is accessed. This is also known as a “column select.” The memory page containing the accessed memory location must be closed before another memory page can be opened in the same memory bank. This can lead to increased memory access times which can impact CPU performance in terms of both reduced bandwidth and increased latency (i.e., processing time) in transactions involving memory accesses.
To reduce memory access times and latency, memory controllers can be configured with a global memory page management policy to leave open a memory page after a memory access. The leave open memory page management policy only closes the memory page if required to service a pending memory access request targeting a new memory page or to perform memory maintenance commands, such as auto-refresh or self-refresh, as examples. Configuring a memory controller to leave open a memory page after an access may be advantageous for certain memory applications, particularly those involving non-random, sequential memory location accesses, such as by multi-media applications or processors, as an example. In these scenarios, sequential memory accesses are often to the same memory page. Processing time is saved by not closing the memory page for a memory bank prior to a next memory access to the same memory page in the memory bank. However, a tradeoff exists by providing a memory page management policy to leave open memory pages. A processing time penalty is incurred if sequential memory accesses to a memory bank are to different memory pages. If, for example, a memory controller receives a request to access a different memory page than a currently open memory page in a memory bank, the memory controller must close the currently open memory page before the new memory page can be opened. The additional processing time incurred in closing the currently open memory page before a new memory page can be accessed can increase latency. Another tradeoff of employing a memory page management policy of leaving open a memory page is the additional power expended to keep the memory page open after an access.